import ajax  from "../service/ajax.js"
export default{
    namespaced:true,//允许使用命名空间
    state:{
        loginUser:{}, //登陆用户对象
        param:{pageNO:1}, //分页查询条件对象
        userCutObj:{},  //当前页需要显示的分页对象
        showUserAdd:false, //添加用户弹出层是否显示
        showUserUpdate:false, //修改用户弹出层是否显示
        updateUser:{},   //要修改的用户对象
        updateRoleList:[], //要修改的用户对象绑定的角色ID集合
        updateGradeInfo:"" //角色集合对应的权限信息
    },
    mutations:{
        setLoginUser(state,obj){ //设置登陆用户
            state.loginUser = obj;
        },
        setUpdateRoleList(state,obj){ //设置要修改的用户对象绑定的角色ID集合
            state.updateRoleList = obj;
        },
        setUserCutObj(state,cutObj){//设置当前页需要显示的分页对象
            state.userCutObj = cutObj;
        },
        setShowUserAdd(state,isadd){//设置添加用户弹出层是否显示
            state.showUserAdd = isadd;
        },
        setShowUserUpdate(state,isUpdate){//设置修改用户弹出层是否显示
            state.showUserUpdate = isUpdate;
        },
        setUpdateGradeInfo(state,info){//设置角色集合对应的权限信息
            state.updateGradeInfo = info;
        },
        setUpdateUser(state,user){ //设置要修改的用户对象
            state.updateUser = user;
            //将绑定角色集合清空
            state.updateRoleList.length = 0;

            //从用户的角色集合中，取出id，添加到state.updateRoleList绑定角色ID集合
            for(var i=0;i<user.roleList.length;i++){
                state.updateRoleList.push(user.roleList[i].id);
            }
        }
    },
    actions:{
        async getLoginUser(context){//得到登陆用户对象
            var userObj = await ajax.getSubmit("/project/user/getLoginUser",{});
            context.commit('setLoginUser',userObj);

        },
        async findByItem(context){//动态条件分页查询
            var userCutObj = await ajax.getSubmit("/project/user/findByItem",context.state.param);
            context.commit('setUserCutObj',userCutObj);

        }
    }
}